export interface ObjectString {
	[propname: string]: string
}

export interface ObjectNumber {
	readonly [propname: string]: number
}

export interface ObjectBaseAll {
	readonly [propname: string]: number | string | boolean | undefined | null
}

export interface ObjectUnknown {
	readonly [propname: string]: unknown
}
export interface ObjectAny {
	[propname: string]: any
}

export interface GetLabelByValueFromItem extends ObjectAny {
	label: string
	value: number | string | boolean
}

export interface pageParams {
	page: number
	size: number
}

export interface TableColumn {
	label: string
	prop: string
	type?: string
	width?: number
	center?: boolean
	fixed?: string
}

export interface Btn {
	label: string
	prop: string
	show?: string | ((tr: ObjectAny) => boolean)
}

export interface TransparentTableType {
	tableName: string
	columns: TableColumn[]
	data: ObjectAny[]
	operateObj?: {
		label: string
		prop: string
		type: string
		fixed: string
		width: number
		btns: Btn[]
	}
	pages: {
		pageIndex: number
		pageSize: number
		total: number
	}
}
